{"componentChunkName":"component---src-templates-blog-post-js","path":"/Today I Learned/full_height_on_mobile_web/","result":{"data":{"site":{"siteMetadata":{"title":"JULog","author":"[Ju Chan Hwang]","siteUrl":"https://julog.netlify.app","comment":{"disqusShortName":"","utterances":"JuChanHwang/gatsby-starter-bee"},"sponsor":{"buyMeACoffeeId":"jbee"}}},"markdownRemark":{"id":"04c6cfb8-72bd-52c0-9f94-bfe7d5ffb7ed","excerpt":"문제의 상황 및 요구사항 전체 화면 높이를 차지하도록 요소의 스타일을 지정하려면 높이를 100vh로 설정하면된다. 하지만 예상되로 되지 않는 것을 경험할 것이다. 웹 브라우저에 기본적으로 보이는 주소 줄까지 높이로 계산해, 가려진 영역 때문에 스크롤이 발생한다. 해결 방안 사용자 정의 vh 사용 (CSS 변수) window.innerHeight를 사용하여 CSS 변수 —vh를 설정한다. 이제 전 영역에서 —vh를 사용할 수 있다.  100vh -  10vh -  1vh…","html":"<h2 id=\"문제의-상황-및-요구사항\" style=\"position:relative;\"><a href=\"#%EB%AC%B8%EC%A0%9C%EC%9D%98-%EC%83%81%ED%99%A9-%EB%B0%8F-%EC%9A%94%EA%B5%AC%EC%82%AC%ED%95%AD\" aria-label=\"문제의 상황 및 요구사항 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>문제의 상황 및 요구사항</h2>\n<p>전체 화면 높이를 차지하도록 요소의 스타일을 지정하려면 높이를 100vh로 설정하면된다. 하지만 예상되로 되지 않는 것을 경험할 것이다. 웹 브라우저에 기본적으로 보이는 주소 줄까지 높이로 계산해, 가려진 영역 때문에 스크롤이 발생한다.</p>\n<img width=\"900\" alt=\"스크린샷 2020-06-24 오후 5 04 14\" src=\"https://user-images.githubusercontent.com/36187948/85519623-be95c200-b63c-11ea-97a6-827ee866a9d7.png\">\n<h2 id=\"해결-방안\" style=\"position:relative;\"><a href=\"#%ED%95%B4%EA%B2%B0-%EB%B0%A9%EC%95%88\" aria-label=\"해결 방안 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>해결 방안</h2>\n<h4 id=\"사용자-정의-vh-사용-css-변수\" style=\"position:relative;\"><a href=\"#%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-vh-%EC%82%AC%EC%9A%A9-css-%EB%B3%80%EC%88%98\" aria-label=\"사용자 정의 vh 사용 css 변수 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>사용자 정의 vh 사용 (CSS 변수)</h4>\n<p>window.innerHeight를 사용하여 CSS 변수 —vh를 설정한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"ts\"><pre class=\"language-ts\"><code class=\"language-ts\"><span class=\"token comment\">// 1)</span>\nwindow<span class=\"token punctuation\">.</span><span class=\"token function\">addEventListener</span><span class=\"token punctuation\">(</span><span class=\"token string\">'resize'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span> \n  document<span class=\"token punctuation\">.</span><span class=\"token function\">querySelector</span><span class=\"token punctuation\">(</span><span class=\"token string\">':root'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>style\n    <span class=\"token punctuation\">.</span><span class=\"token function\">setProperty</span><span class=\"token punctuation\">(</span><span class=\"token string\">'--vh'</span><span class=\"token punctuation\">,</span> window<span class=\"token punctuation\">.</span>innerHeight<span class=\"token operator\">/</span><span class=\"token number\">100</span> <span class=\"token operator\">+</span> <span class=\"token string\">'px'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token comment\">// 2)</span>\n<span class=\"token keyword\">const</span> vh <span class=\"token operator\">=</span> window<span class=\"token punctuation\">.</span>innerHeight <span class=\"token operator\">*</span> <span class=\"token number\">0.01</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>elementRef<span class=\"token punctuation\">.</span>nativeElement<span class=\"token punctuation\">.</span>style<span class=\"token punctuation\">.</span><span class=\"token function\">setProperty</span><span class=\"token punctuation\">(</span><span class=\"token string\">'--vh'</span><span class=\"token punctuation\">,</span> <span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>vh<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">px</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>이제 전 영역에서 —vh를 사용할 수 있다. </p>\n<div class=\"gatsby-highlight\" data-language=\"scss\"><pre class=\"language-scss\"><code class=\"language-scss\"><span class=\"token property\">min-height</span><span class=\"token punctuation\">:</span> <span class=\"token function\">calc</span><span class=\"token punctuation\">(</span>100vh <span class=\"token operator\">-</span> <span class=\"token variable\">#{$edge-height}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token property\">min-height</span><span class=\"token punctuation\">:</span> <span class=\"token function\">calc</span><span class=\"token punctuation\">(</span><span class=\"token function\">var</span><span class=\"token punctuation\">(</span>--vh<span class=\"token punctuation\">,</span> 1vh<span class=\"token punctuation\">)</span> <span class=\"token operator\">*</span> 100 <span class=\"token operator\">-</span> <span class=\"token variable\">#{$edge-height}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li>100vh - <code class=\"language-text\">height: calc(100 * var(--vh));</code></li>\n<li>10vh - <code class=\"language-text\">height: calc(10 * var(--vh));</code></li>\n<li>1vh - <code class=\"language-text\">height: calc(1 * var(--vh));</code></li>\n</ul>\n<blockquote>\n<p>참고 및 참조</p>\n<ul>\n<li><a href=\"https://dev.to/admitkard/mobile-issue-with-100vh-height-100-100vh-3-solutions-3nae\">Mobile issue with 100vh | height: 100% !== 100vh [3 solutions]</a></li>\n</ul>\n</blockquote>","frontmatter":{"title":"Full Height On mobile Web","date":"June 24, 2020"}}},"pageContext":{"slug":"/Today I Learned/full_height_on_mobile_web/","previous":{"fields":{"slug":"/Today I Learned/css_z-index/"},"frontmatter":{"title":"CSS z-index","category":"Today I Learned","draft":false}},"next":{"fields":{"slug":"/Today I Learned/mobile_touch_swipe_indicator/"},"frontmatter":{"title":"Mobile Touch Swipe Indicator","category":"Today I Learned","draft":false}}}},"staticQueryHashes":["3128451518","96099027"]}